# coding: utf-8
"""
此代码的功能：十进制的数转换任意进制的数
"""
def decimal_to_base1(n,base):
	if n < base:
		return n
	# base 目标进制,n: 十进制整数
	from functools import reduce
	l1 = []
	div,mod = divmod(n,base)
	l1.append(mod)
	while True:
	    if div > base:
	        n = div
	        div,mod = divmod(n,base)
	        l1.append(mod)
	    else:
	        l1.append(div)
	        break
	l1.reverse()
	result = int(reduce(lambda x,y: str(x) + str(y),l1))
	return result

# 与上面的代码相同，只是实现的方式不一样
def decimal_to_base2(n,base):
	result = []
	div = n
	while div != 0:
		div , mod = divmod(div,base)
		result.append(mod)
	result.reverse()
	result = ''.join(map(str,result))

	return eval(result)

def main():
	base = 6
	n = 1002
	print("第一种方法：十进制{0} 转换为 {1} 进制".format(n,base),decimal_to_base1(n,base))
	
	print("第二种方法：十进制{0} 转换为 {1} 进制".format(n,base),decimal_to_base2(n,base))

if __name__ == "__main__":
	main()
